home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
edit
/
jwpsrc.zip
/
MAIN.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-31
|
48KB
|
1,378 lines
/* Copyright (C) Stephen Chung, 1991-1993. All rights reserved. */
#include "jwp.h"
#include "idm.h"
#include <stdarg.h>
#ifdef CTL3D
#include <ctl3d.h>
#endif CTL3D
GLOBALOPTIONS global;
FILEOPTIONS *fileoptions = NULL;
FILEOPTIONS *curfile = NULL;
KANJIFONT *InstalledFonts = NULL;
ASCIIFONT DefAsciiFont = { "Times New Roman", 12 };
HANDLE hInstance = NULL;
HMENU hmenu = NULL;
HMENU FullMenu, MinimalMenu;
BOOL Dialogs3D = FALSE;
static int Untitled = 0;
static BOOL AllInitialized = FALSE;
static TOOLBARICON toolbar[] = {
{ ID_KANA, 180, TBBORDER+2, 24, 24, 1, 0, NULL, "Kana_Undep", "Kana_Dep", "Kana_Grayed", "Kana_Pressed" },
{ ID_ASCII, 210, TBBORDER+2, 24, 24, 0, 0, NULL, "Ascii_Undep", "Ascii_Dep", "Ascii_Grayed", "Ascii_Pressed" },
{ ID_CONVERT, 250, TBBORDER+2, 24, 24, 0, 1, "CVT_Disabled", "CVT_Undep", NULL, NULL, "CVT_Pressed" },
{ ID_BOLD, 290, TBBORDER+2, 24, 24, -1, 2, "Bold_Disabled", "Bold_Undep", "Bold_Dep", "Bold_Grayed", "Bold_Pressed" },
{ ID_ITALICS, 320, TBBORDER+2, 24, 24, -1, 2, "Italics_Disabled", "Italics_Undep", "Italics_Dep", "Italics_Grayed", "Italics_Pressed" },
{ ID_UNDERLINE, 350, TBBORDER+2, 24, 24, -1, 2, "Und_Disabled", "Und_Undep", "Und_Dep", "Und_Grayed", "Und_Pressed" },
{ ID_REVERSE, 380, TBBORDER+2, 24, 24, -1, 2, "Rev_Disabled", "Rev_Undep", "Rev_Dep", "Rev_Grayed", "Rev_Pressed" },
{ ID_HOLLOW, 410, TBBORDER+2, 24, 24, -1, 2, "Hollow_Disabled", "Hollow_Undep", "Hollow_Dep", "Hollow_Grayed", "Hollow_Pressed" },
{ ID_SHADOW, 440, TBBORDER+2, 24, 24, -1, 2, "Shadow_Disabled", "Shadow_Undep", "Shadow_Dep", "Shadow_Grayed", "Shadow_Pressed" },
{ ID_GLOSSARY, 480, TBBORDER+2, 24, 24, 0, 0, NULL, "Glossary_Undep", "Glossary_Dep", "Glossary_Grayed", "Glossary_Pressed" },
{ ID_SPECIAL, 510, TBBORDER+2, 24, 24, 0, 0, NULL, "Special_Undep", "Special_Dep", "Special_Grayed", "Special_Pressed" },
{ ID_LEFTRIGHT, 550, TBBORDER+2, 24, 24, -1, 0, "LR_Disabled", "LR_Undep", "LR_Dep", "LR_Grayed", "LR_Pressed" },
{ ID_UPDOWN, 580, TBBORDER+2, 24, 24, -1, 0, "UD_Disabled", "UD_Undep", "UD_Dep", "UD_Grayed", "UD_Pressed" }
};
LONG FAR PASCAL MainWinProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL FileParentWinProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL FileWinProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL JeditProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL JtextProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL RulerProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL ConvProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL StatusProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL StatisticsProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL FileOpenDlgProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL FileSaveFormatProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL FileSaveAsDlgProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL DictionaryProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL BigKanjiProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL KanjiInfoProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL JISInputProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL LookupProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL LookupListProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL JISTableDlgProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL JISTableProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL HotKeysProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL ChangeHotKeyProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL OptionsProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL GlossaryProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL GlossaryListProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL AboutProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL SimpleProc (HWND, WORD, WORD, LONG);
extern LONG FAR PASCAL InputModeIconProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL InstalledFontsProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL UserConversionProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL EditUserConversionProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL SearchProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL ReplaceProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL ReplaceDlgProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL PrintProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL PageSetupProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL PrinterSetupProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL SummaryProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL HeaderProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL EditHeaderProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL FileFindProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL RunProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL TemplateProc (HWND, WORD, WORD, LONG);
extern BOOL FAR PASCAL FormatParagraphProc (HWND, WORD, WORD, LONG);
static void InitializeEverything(void)
{
fileoptions = NULL;
ReadOptionsFile();
InitPrinting();
InitFonts();
InitConversion();
ReadGlossary(global.glossary);
ReadConversionCache(global.convcache);
}
void ErrorMessage(HWND hwnd, char *fmt, ...)
{
va_list argptr;
char buffer[MAXLINELEN];
va_start(argptr, fmt);
vsprintf(buffer, fmt, argptr);
va_end(argptr);
MessageBeep(0);
MessageBox (hwnd, buffer, "Something is wrong...", MB_ICONEXCLAMATION | MB_OK);
}
int Confirmation (HWND hwnd, char *fmt, ...)
{
va_list argptr;
char buffer[MAXLINELEN];
va_start(argptr, fmt);
vsprintf(buffer, fmt, argptr);
va_end(argptr);
MessageBeep(0);
return (MessageBox (hwnd, buffer, "Please Confirm...", MB_ICONQUESTION | MB_YESNOCANCEL));
}
int YesNo(HWND hwnd, char *fmt, ...)
{
va_list argptr;
char buffer[MAXLINELEN];
va_start(argptr, fmt);
vsprintf(buffer, fmt, argptr);
va_end(argptr);
MessageBeep(0);
return (MessageBox (hwnd, buffer, "Please Confirm...", MB_ICONQUESTION | MB_YESNO));
}
BOOL RetryMessage(char *fmt, ...)
{
va_list argptr;
char buffer[MAXLINELEN];
va_start(argptr, fmt);
vsprintf(buffer, fmt, argptr);
va_end(argptr);
MessageBeep(0);
if (MessageBox (global.hwnd, buffer, "Something is wrong...",
MB_ICONEXCLAMATION | MB_RETRYCANCEL) == IDCANCEL) return (FALSE);
else
return (TRUE);
}
static void AdjustAllChildWindows (int width, int height)
{
int i;
int ToolBarHeight = 0, StatusBarHeight = 0;
RECT rect;
if (global.tbhwnd != NULL) {
MoveWindow(global.tbhwnd, -1, -1, width + 2, TBHEIGHT + 2, TRUE);
ToolBarHeight = TBHEIGHT + 1;
}
if (global.statushwnd != NULL) {
MoveWindow(global.statushwnd, -1, height - STATUSHEIGHT,
width + 2, STATUSHEIGHT + 2, TRUE);
StatusBarHeight = STATUSHEIGHT;
}
if (global.clienthwnd == NULL || global.convhwnd == NULL) return;
switch (global.listposition) {
case 0: MoveWindow(global.clienthwnd, 0, ToolBarHeight, width,
height - StatusBarHeight - ToolBarHeight, TRUE);
if (!(GetWindowLong(global.convhwnd, GWL_STYLE) & WS_POPUP)) {
DestroyWindow(global.convhwnd);
global.convhwnd = CreateWindow("JWP Conversion Bar", NULL,
WS_THICKFRAME | WS_VISIBLE | WS_POPUP,
global.convbar.left, global.convbar.top,
global.convbar.right, 0,
global.hwnd, NULL, hInstance, NULL);
}
break;
case 1: i = SYSFONT->height + 2 * BORDERSPACE +
GetSystemMetrics(SM_CXVSCROLL) +
2 * GetSystemMetrics(SM_CYBORDER);
if (GetWindowLong(global.convhwnd, GWL_STYLE) & WS_POPUP) {
DestroyWindow(